package com.heima.controller;

import com.heima.pojo.dto.OrderCountDTO;
import com.heima.pojo.vo.ChartDataResponse;
import com.heima.pojo.dto.SkuTopDTO;
import com.heima.pojo.vo.SkuSaleVO;
import com.heima.service.ReportService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * \* User: chy
 * \* Date: 2025/8/23  8:27
 * \* Description:首页数据
 * \
 */
@RestController
@RequestMapping("/api/order-service/report")
@Slf4j
public class ReportController {
    @Autowired
    private ReportService reportService;


    /**
     * 查询订单统计数据
     * @param orderCountDTO
     * @return
     */
    @GetMapping("/orderCount")
    public Integer orderCount(OrderCountDTO orderCountDTO){
        log.info("查询订单统计数据");
        Integer count =  reportService.orderCount(orderCountDTO);
        return  count;
    }

    /**
     * 查询订单金额统计数据
     * @param orderCountDTO
     * @return
     */
    @GetMapping("/orderAmount")
    public BigDecimal orderAmount(OrderCountDTO orderCountDTO){
        log.info("查询订单金额统计数据");

      BigDecimal amount = reportService.orderAmount(orderCountDTO);
        return amount;
    }

    /**
     * 查询地区销售数据
     * @param orderCountDTO
     * @return
     */
    @GetMapping("/regionCollect")
    public ChartDataResponse regionCollect(OrderCountDTO orderCountDTO){
        log.info("查询地区销售数据");

        return null;   //TODO 待完成
    }

    /**
     * 获取销量前几的商品
     * @param topValue
     * @param start
     * @param end
     * @return
     */
    @GetMapping("/skuTop/{topValue}/{start}/{end}")
    public List<SkuSaleVO> skuTop(@PathVariable("topValue") Integer topValue,
                                  @PathVariable("start") @DateTimeFormat(pattern = "yyyy-MM-dd") Date start,
                                  @PathVariable("end") @DateTimeFormat(pattern = "yyyy-MM-dd") Date end){
        log.info("获取销量前几的商品:{}",topValue);

        return null;   //TODO 待完成
    }

}
